<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>

        function biaobai(god) {
            return new Promise(resolve => {
                console.log(`邓哥向${god}发出了表白短信`);
                setTimeout(() => {
                    if (Math.random() < 0.3) {
                        //女神同意拉
                        resolve(true)
                    } else {
                        //resolve
                        resolve(false);
                    }
                }, 500);
            })
        }

        /*
            邓哥心中有三个女神
            有一天，邓哥决定向第一个女神表白，如果女神拒绝，则向第二个女神表白，直到所有的女神都拒绝，或有一个女神同意为止
            用代码模拟上面的场景
        */
        (async () => {
            const gods = ["女神1", "女神2", "女神3", "女神4", "女神5"];
            for (let i = 0; i < gods.length; i++) {
                const g = gods[i];
                // 当前循环等待的Promise没有resolve，下一次循环不运行
                const result = await biaobai(g);
                if (result) {
                    console.log(`${g}同意了，不用再表白了！！！`);
                    break;
                } else {
                    console.log(`${g}没有同意`)
                }
            }
        })()
    </script>
</body>

</html>